package thread;

/**
 * date:2023-2-12
 * description：wait 进行阻塞。当某个线程调用 wait方法就会进行阻塞（无论是用哪个对象 wait的），此时就处在 WAITING
 * 使用 wait() 必须先加锁
 * 因为 wait 操作是：1、先释放锁  2、进行阻塞等待  3、收到通知之后，重新获取锁，并且在获取锁之后，继续执行下去
 */
public class ThreadDemo17 {
    // InterruptedException 这个异常，很多带有阻塞功能的异常都带，这个异常都是可以被 interrupt 方法通过这个异常给唤醒
    public static void main(String[] args) throws InterruptedException {
        Object object = new Object();
        synchronized (object) {
            System.out.println("wait 之前");
            object.wait();
            System.out.println("wait 之后");
        }
    }
}
